package com.itheima;

/**
 * @ProjectName: ybxy6
 * @Titile: ArrayListDemo
 * @Author: 鲁伍加
 * @Description: TODO
 */

import javax.naming.Name;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.function.Consumer;

/**
 1.构造函数
----1.Arrylist()


 2.成员方法
 ---1.add(Object obj)
 ---2.add(int index,Object obj)
 ---3.
 ---4.get(int index)
 ---5.set(int index,Object obj)
 ---6.size()
 ---7.clear()
 ---8.contains(Object obj)
 ---9.获取迭代器的方法
 **/
public class ArrayListDemo {
    public  static void main(String[] args) {
        //1.创建Arraylist集合对象
        //底层赋值了一个空数组（就干了这一件事情
        ArrayList<String> list = new ArrayList<String>();//集合当中的一个泛型
        //2.往ArrayList集合中添加元素
        //方法重载
        //增加数据
        list.add("zhangsan");//添加一个数据，在数组的尾部
        list.add(0,"lisi");//添加一个数据，在数组的指定位置
        //获取数据
        String s = list.get(1);
        System.out.println(s);
        //修改数据
        list.set(1,"wangwu");
        list.add("zhaoliu") ;
        list.add("tianqi");


//        //查询数据
//        System.out.println(list);
//        System.out.println(list.size());
//        System.out.println(list.contains("lisi"));
//
        //删除数据
        list.remove(1);
        System.out.println(list);
        System.out.println("-------------集合的遍历方法------------");
        for (int i = 0; i < list.size(); i++) {
            String obj = list.get(i);
            System.out.println(obj);
        }
        System.out.println("-------------集合的遍历方法2------------");
        //2.增强for循环的形式
        for (String obj : list) {
            System.out.println(obj);
        }
        //3.迭代器
        System.out.println("-------------集合的遍历方法3------------");
        //获取集合的迭代器对象
        Iterator<String> iterator = list.iterator();
        String next = iterator.next();
        boolean hasNext = iterator.hasNext();
        System.out.println(next);
        System.out.println(hasNext);
        while (iterator.hasNext()) {
            String next1 = iterator.next();
            System.out.println(next1);
        }
        //4.lambda表达式的方式
        System.out.println("-------------集合的遍历方法4------------");
        //lambda表达式本质就是一个函数
        //Consumer<String> consumer =;//就是一个函数

      //  list.forEach(str-> System.out.println(str));
         list.forEach(new Consumer<String>() {
             @Override
             public void accept(String s) {
                 System.out.println(s);
             }

         });
        list.forEach(name -> System.out.println(name));
        list.forEach(System.out::println);

    }
}
